计算机网络基础

一、HTTP报文

1.请求报文

HTTP协议是以ASCII码传输,建立在TCP/IP协议之上的应用层规范。规范把HTTP请求分为三部分:状态行、请求头、消息主体。类似下面这样:

<method> <requests-URL> <version>
<headers>

<entity-body>

HTTP定义了与服务器交互的不同方法,最基本的方法有4中,分别是Get、Post、Put和Delete。

1。Get用于信息获取,而且应该是安全的和幂等的:所谓安全的是指该操作用于获取信息而非修改信息,幂等意味对同意URLL的多个请求应该返回相同的结果。

GET请求报文示例:

 GET /books/?sex=man&name=Professional HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Connection: Keep-Alive

2.Post表示可能修改服务器上的资源的请求:

 POST / HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Content-Type: application/x-www-form-urlencoded
 Content-Length: 40
 Connection: Keep-Alive

 sex=man&name=Professional  

3.注意:

  • Get可以提交的数据量受到URL长度的限制,HTTP协议规范没有对URL长度进行限制,但是特定的浏览器以及服务器可能对对其限制。
  • Post是没有大小限制的,HTTP协议也没有进行大小限制,但是处于安全的考虑,服务器软件在实现的时候会做一定的限制
  • 其实,在上面的两个例子中,GET和POST数据的内容是一模一样,只是位置不同,一个在URL,一个在HTTP的报文里

2.响应报文

HTTP响应报文也由三部分组成:状态行、响应头、响应正文。

状态行有协议版本、数字形式的状态码以及相应的状态描述组成,各元素之间以空格分隔。

常见的状态码有如下几种:

  • 200 OK: 客户端请求成功
  • 301 Moved: Permanently 请求永久重定向
  • 302 Moved Temporarily: 请求临时重定向
  • 304 Not Modified :文件未修改,可以直接使用缓存的文件
  • 400 Bad Request :由于客户端请求有语法错误,不能被服务器理解
  • 401 Unauthorized :请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
  • 403 Forbidden: 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
  • 404 Not Found :请求资源不存在
  • 500 Internal Server Error: 服务器发生不可预期的错误,导致无法完成客户端的请求
  • 503 Service Unavailable: 服务器当前不能处理客户端的请求,在一段时间后,可能回复正常
原文地址:https://www.cnblogs.com/jxc321/p/7542529.html