首页 > 代码库 > HTTP学习笔记

HTTP学习笔记

1.TCP/IP协议族

  分层:应用层HTTP/DNS/FTP。传输层TCP/UDP。网络层IP/ARP。数据链路层(处理连接网络的硬件部分)

  TCP三次握手:发送端发送SYN,接收端发送SYN/ACK,发送端再发送ACK。

  HTTP通信过程:客户端输入域名,DNS通过域名查找IP地址。HTTP协议生成针对目标WEB服务器的HTTP请求报文。TCP协议将HTTP请求报文分割成报文段,分别添加标记序号和端口号,把每段报文可靠的(三                            次握手)传给对方。IP协议搜索对方的地址,增加作为通信目的地的MAC地址,一边中转一边传送。服务器端TCP协议将接收到的报文段按序重组成请求报文。HTTP协议对WEB服务器请求的内容                            进行处理。响应的内容也按相同方式传给客户端。

2.HTTP协议

  HTTP协议肯定是先从客户端开始建立通信。对于一条通信路线来说,服务器端和客户端的角色是固定的。

  HTTP是无状态协议。

  HTTP可以保持TCP连接状态,在建立一次TCP连接后可进行多次HTTP请求和响应。

  HTTP管线化:下一次请求不需要等待上一次的响应完成就可以进行。

  Cookie进行状态管理:服务器端在响应报文里添加Set-Cookie首部字段,通知客户端保存Cookie,下次客户端往服务器发送请求时,客户端在请求报文添加Cookie首部字段,服务器发现请求报文的Cookie后,检                                    查究竟是哪一个客户端发送来的连接请求,然后对比服务器的记录,最后得到之前的状态信息。

3.HTTP报文

  报文分请求报文和响应报文。报文由报文首部+空行+报文主体构成。

  请求报文首部:请求行,请求首部字段,通用首部字段,实体首部字段,其他

  响应报文首部:状态行,响应首部字段,通用首部字段,实体首部字段,其他

  HTTP状态码:1XX信息性状态码,接受的请求正在处理。

                     2XX成功状态码,请求正常处理完毕。200,204(响应不返回资源)

          3XX重定向状态码,需要进行附加操作完成请求。304(服务器资源未改变,可直接使用客户端未过期的缓存)

          4XX客户端错误状态码,服务器无法处理请求。403(不允许访问该资源)404(服务器找不到请求资源)

          5XX服务器错误状态码,服务器处理出错。500(服务器内部出错)503(服务器处于超负荷或者停机维护)

4.WEB服务器

  代理:位于客户端和服务器之间,进行转发。作用:缓存,访问控制,获取访问日志。

  网关:接收客户端请求时,把自己当作源服务器处理请求。作用:可以使网关与服务器通信提供非HTTP协议服务。

  隧道:对相隔很远的客户端和服务器进行中转,保持双方通信连接。作用:保证安全通信

  缓存:代理服务器或者客户端本地保存的资源副本。减少对源服务器的访问,节省通信流量和时间。在判断缓存过期后,要向源服务器确认缓存的有效性。

5.

HTTP学习笔记