HTTP协议

简介: 1.什么是协议?        协议:是通信双方应该遵守的一个共同的规则。只有双方按照指定的规则,一方发送数据,另外一方才能接受到数据。 2.什么是http协议?     在互联网中,我们通过浏览器访问其他的网站,默认都会使用http协议。

1.什么是协议?

      

  协议通信双方应该遵守的一个共同的规则。只有双方按照指定的规则,一方发送数据,另外一方才能接受到数据。

 

2.什么是http协议?

   

  在互联网中,我们通过浏览器访问其他的网站,默认都会使用http协议。客户端和服务器之间进行交互的规则

 

 

 

  html : 超文本 标记语言

 

  http协议:超文本传输协议HTTPHyperText Transfer Protocol)互联网上应用最为广泛的一种网络协议

 

       设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。它是互联网交互的一种规则

 

 

 

  http的特点:

 

  1http协议是基于TCP协议,基于应用层

 

  2、默认端口是80如果端口号是80,可以省略不写

 

    http://www.baidu.com:80

 

    http://www.baidu.com

 

  3http协议永远是客户端(浏览器或者手机等)发送请求,服务器回送响应

 

     

 

    

  

 

  

  客户端访问服务端称为客户端的请求,服务器给浏览器回送数据称为服务器的响应。

 

 

3.

 

1。浏览器如何向服务器发送请求?
常用的请求类型? get请求 和 post请求。

哪些是get请求?
1、地址栏直接输入
2、<form method="get"...>
3、超链接 <a href="....">xx</a>
4、图片链接

哪些是post请求:
<form method="post"> 使用 form 表单 发送get 请求和post请求: <body> <form action="/request1" method="get"> 帐号:<input type="text" name="username" /> <br /> 密码:<input type="password" name="password" /> <br /> <input type="submit" value="提交" /> </form> </body> 使用自定义的Servlet代码接受用户的请求: public class Request1Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("get。。。。。。。请求"); response.getWriter().print("This is a get"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("post。。。。。。。请求"); response.getWriter().print("This is a post"); } }

 

 

 

 

4.http协议中请求格式

 

  http规定:请求的数据必须分成三部分:

 

  1、 请求

  2、 请求

  3、 请求

 

 

 

  Get方式:(参数在请求行内)

 

 

 

 

 

 

  Post方式:(参数在请求行内)

 

 

 

 

 

 

 

请求行:分成3部分

 

  客户端请求服务器时使用的请求方式:GETPOST

 

  客户端请求服务器的资源路径/request 1

 

  请求时客户端使用的协议:http/1.1

 

 

 

明显缺陷:浏览器和服务器建立连接后,每次只能处理一次请求。

 

为了克服上述1.0的缺陷,http1.1 应运而生。它支持持久连接,也就是说在一个TCP连接上可以传送多个http请求和响应,从而减少建立和关闭连接的消耗延时。

 

 

 

 

 

请求头:

 

是有keyvalue组成的数据,keyvalue之间必须使用冒号隔开。一个key可以对应多个value值。 

Host:客户端请求的服务器的主机的ip

User-Agent:表示的是客户端在使用什么浏览器访问服务器(在学习下载时使用)

Accept:告诉服务器,客户端可以接受的数据类型

Cookie: 是服务器发给浏览器的数据,在本次访问的时候浏览器会自动带给服务器。如果用户的浏览器是第一次访问某个网站,在请求头中是不会有这个Cookie,只有后续的访问才会有。

Cache-Control:控制缓存的。

 

根据用户的请求次数,或者是客户端的设置,那么每次请求服务器的时候,可能携带的头都不一样。

Accept: text/html,image/*    

Accept-Charset: ISO-8859-1

Accept-Encoding: gzip

Accept-Language:zh-cn

Host: www.itcast.com:80

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT  它记录的是当前网站的最后一次修改时间

Refererhttp://www.itcast.com/index.jsp  它可以控制防盗链

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)  它使用下载

Connection: close/Keep-Alive    

Date: Tue, 11 Jul 2000 18:23:51 GMT

 

注意:请求中,只有post请求方式,才会有请求体get方式的请求,请求数据中是没有请求体的。

 

 

5. HTTP协议中的响应格式(服务器 --》 浏览器

  http协议中在定义响应格式:分成3部分

  1、 响应

  2、 响应

  3、 响应

 

响应行:分成三部分:

服务器给客户端响应数据使用的协议:http/1.1

200 状态码

OK 状态信息

响应行中的状态码

1xx 表示客户端请求服务器的时候数据不完整

2xx 表示服务器响应数据成功   200

3xx 表示的是重定向  

   302:请求重定向      A找B借钱,B说我没有,但是我告诉你找C借钱,A就会自动的找C

 

   304服务器告诉客户端,访问的资源没有修改,浏览器去自己的缓存中找数据。

4xx 服务器没有这个资源。 404 找不到资源

5xx 服务器内部异常了。

 

响应头:

Location: http://www.itcast.cn/index.jsp  这个需要配合302一起使用(重点)

Server:apache tomcat

Content-Encoding: gzip

Content-Length: 80

Content-Language: zh-cn

Content-Type: text/html; charset=GB2312

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT  告诉客户端这次请求的资源在服务器中最后一次的修改时间

Refresh: 1;url=http://www.it315.org  定时刷新

Content-Disposition: attachment; filename=aaa.zip

Expires: -1

Cache-Control: no-cache    告诉浏览器不允许缓存当前的资源数据

Pragma: no-cache   

Connection: close (关闭)/Keep-Alive(保持连接)    

Date: Tue, 11 Jul 2000 18:23:51 GMT

 

响应体:浏览器需要显示的数据

 

http协议:超文本传输协议。http协议它是基于请求和响应而设计的协议。

请求和响应模型:一次请求,必然会有一次响应。它们一一对应的。没有请求,不会有响应

 

相关文章
|
7天前
|
算法 网络协议 安全
HTTP/2 协议的缺点是什么?
HTTP/2 协议的缺点是什么?
|
7天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
36 3
|
18天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
45 13
|
11天前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
|
16天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
16天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
16天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
18天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
20天前
|
网络协议 前端开发 API
HTTP 和 TCP 协议的应用场景有哪些不同
【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。
|
20天前
|
安全 前端开发 JavaScript
利用HTTP协议进行文件上传和下载的常见方法
【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。