SlideShare a Scribd company logo
1 of 29
Http Request & Response
HyperText Transfer Protocol (HTTP)

most popular application protocol used in the
Internet (or The WEB)

An HTTP client sends a request message to an
HTTP server

The server, in turn, returns a response message. In
other words, HTTP is a pull protocol, the client
pulls information from the server (instead of server
pushes information down to the client).

HTTP is a stateless protocol. In other words, the
current request does not know what has been done
in the previous requests.
Browser
Uniform Resource Locator (URL)
A URL (Uniform Resource Locator) is used to uniquely identify a resource over the web. URL has the following syntax:
protocol://hostname:port/path-and-file-name
There are 4 parts in a URL:
Protocol: The application-level protocol used by the client and server, e.g., HTTP, FTP, and telnet.
Hostname: The DNS domain name (e.g., www.test101.com) or IP address (e.g., 192.128.1.2) of the server.
Port: The TCP port number that the server is listening for incoming requests from the clients.
Path-and-file-name: The name and location of the requested resource, under the server document base directory.
For example, in the URL http://www.test101.com/docs/index.html, the communication protocol is HTTP; the hostname is
www.test101.com. The port number was not specified in the URL, and takes on the default number, which is TCP port 80 for
HTTP. The path and file name for the resource to be located is "/docs/index.html".
Other examples of URL are:
ftp://www.ftp.org/docs/test.txt
mailto:user@test101.com
Important Default Port numbers
443 TCP Hypertext Transfer Protocol over TLS/SSL (HTTPS).
115 TCP Simple/secure File Transfer Protocol (SFTP).
80 TCP Hypertext Transfer Protocol (HTTP).
21 TCP FTP control (command).
22 TCP Secure Shell (SSH) — used for secure logins.
23 TCP Telnet protocol.
25 TCP Simple Mail Transfer Protocol (SMTP).
115 TCP Simple File Transfer Protocol (SFTP).
110 TCP Post Office Protocol v3 (POP3).
1414 TCP IBM WebSphere MQ (formerly known as MQSeries).
9060 TCP WebSphere Application Server Administration Console.
9080 TCP WebSphere Application Server HTTP Transport (port 1) default.
8080 TCP Apache Tomcat.
5432 TCP PostgreSQL database system.
3306 TCP MySQL database system.
1521 TCP Oracle database default listener.
7001 TCP Default for BEA WebLogic Server's HTTP server.
Http Request Message
Http Request Message Format
The format of an HTTP request message is as follow:
Http Request Message
Request Line
The first line of the header is called the request line, followed by optional request headers.
The request line has the following syntax:
request-method-name request-URI HTTP-version
request-method-name: HTTP protocol defines a set of request methods, e.g., GET, POST, HEAD,
and OPTIONS. The client can use one of these methods to send a request to the server.
* case sensitive and must be in uppercase.
request-URI: specifies the resource requested.
HTTP-version: Two versions are currently in use: HTTP/1.0 and HTTP/1.1.
Examples of request line are:
GET /test.html HTTP/1.1
HEAD /query.html HTTP/1.0
POST /index.html HTTP/1.1
Http Request Message
Request Headers
The request headers are in the form of name:value pairs.
Multiple values, separated by commas, can be
specified.
request-header-name: request-header-value1, request-
header-value2, ...
Examples of request headers are:
Host: www.xyz.com
Connection: Keep-Alive
Accept: image/gif, image/jpeg, */*
Accept-Language: us-en, fr, cn
username=vignesh&password=qwer1234&......
Http Request Message Format
GET /docs/index.html HTTP/1.1
Host: www.test101.com
Accept: image/gif, image/jpeg, */*
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Referer:http://localhost:8080/home
Cookie:JSESSIONID=DFC52DC1584F89D94009014A77C111EC;city=Coimbatore;
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu
Chromium/32.0.1700.102 Chrome/32.0.1700.102 Safari/537.36
Cache-Control: max-age=0
(blank line)
Http Response
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Expires: Sun, 01 Mar 2015 13:46:19 GMT
Cache-Control: max-age=31556926, must-revalidate
Date: Sat, 01 Mar 2014 07:57:33 GMT
Set-Cookie:JSESSIONID=1D9B00464C03A0923E0AE77ADE16416A; Path=/; HttpOnly
Content-Type:text/html;charset=UTF-8
<html><body><h1>It works!</h1></body></html>
HTTP Response Message
Http Response Message
Status Line
The first line is called the status line, followed by optional response header(s).
The status line has the following syntax:
HTTP-version status-code reason-phrase
HTTP-version: The HTTP version used in this session. Either HTTP/1.0 and HTTP/1.1.
status-code: a 3-digit number generated by the server to reflect the outcome of the request.
reason-phrase: gives a short explanation to the status code.
Common status code and reason phrase are "200 OK", "404 Not Found", "403 Forbidden", "500 Internal
Server Error".
Examples of status line are:
HTTP/1.1 200 OK
HTTP/1.0 404 Not Found
HTTP/1.1 403 Forbidden
Http Response Message
Response Headers
The response headers are in the form name:value pairs:
response-header-name: response-header-value1, response-header-value2, ...
Examples of response headers are:
Content-Type: text/html
Content-Length: 35
Connection: Keep-Alive
Keep-Alive: timeout=15, max=100
The response message body contains the resource data requested.
Http Response Message
Http Response Status Code
Some commonly encountered status codes are:
100 Continue: The server received the request and in the process of giving the response.
200 OK: The request is fulfilled.
301 Move Permanently: The resource requested for has been permanently moved to a new
location. The URL of the new location is given in the response header called Location.
The client should issue a new request to the new location. Application should update all
references to this new location.
400 Bad Request: Server could not interpret or understand the request, probably syntax error
in the request message.
GET /index.html HTTTTTP/1.0
GET test.html HTTP/1.0
401 Authentication Required: The requested resource is protected, and require client’s
credential (username/password). The client should re-submit the request with his
credential (username/password).
403 Forbidden: Server refuses to supply the resource, regardless of identity of client.
404 Not Found: The requested resource cannot be found in the server.
GET /t.html HTTP/1.0
Http Response Status Code
405 Method Not Allowed: The request method used, e.g., POST, PUT, DELETE, is a valid method.
However, the server does not allow that method for the resource requested.
408 Request Timeout:
500 Internal Server Error: Server is confused, often caused by an error in the server-side program
responding to the request.
501 Method Not Implemented: The request method used is invalid (could be caused by a typing error,
e.g., "GET" misspell as "Get").
get /test.html HTTP/1.0
502 Bad Gateway: Proxy or Gateway indicates that it receives a bad response from the upstream server.
503 Service Unavailable: Server cannot response due to overloading or maintenance. The client can try
again later.
504 Gateway Timeout: Proxy or Gateway indicates that it receives a timeout from an upstream server.
Http Request Using HTML Form
<html>
<head><title>Login</title></head>
<body>
<h2>LOGIN</h2>
<form method="get/post/delete" action="/user/login">
Username: <input type="text" name="user" size="25" /><br />
Password: <input type="password" name="pw" size="10" /><br /><br />
<input type="hidden" name="action" value="login" />
<input type="submit" value="SEND" />
</form>
</body>
</html>
HTML Form Fields
A form contains fields. The types of field include:
Text Box: produced by <input type="text">.
Password Box: produced by <input type="password">.
Radio Button: produced by <input type="radio">.
Checkbox: produced by <input type="checkbox">.
Selection: produced by <select> and <option>.
Text Area: produced by <textarea>.
Submit Button: produced by <input type="submit">.
Reset Button: produced by <input type="reset">.
Hidden Field: produced by <input type="hidden">.
Button: produced by <input type="button"> and <button>
Query String
name1=value1&name2=value2&name3=value3&...
HTML Form Fields
The query string can be sent to the server using either HTTP GET or POST request
method, which is specified in the <form>'s attribute "method".
<form method="get" action="url">
If GET request method is used, the URL-encoded query string will be appended
behind the request-URI after a "?" character, i.e.,
GET request-URI?query-string HTTP-version
(other optional request headers)
(blank line)
(optional request body)
HTML Form Fields
Using GET request to send the query string has the following drawbacks:
The amount of data you could append behind request-URI is limited. If this amount
exceed a server-specific threshold, the server would return an error "414 Request
URI too Large".
The URL-encoded query string would appear on the address box of the browser.
HTML Form Fields
<html>
<head><title>Login</title></head>
<body>
<h2>LOGIN</h2>
<form method="get" action="/bin/login">
Username: <input type="text" name="user" size="25" /><br />
Password: <input type="password" name="pw" size="10" /><br /><br />
<input type="hidden" name="action" value="login" />
<input type="submit" value="SEND" />
</form>
</body>
</html>
HTML Form Fields
Request Data
GET /bin/login?user=Peter+Lee&pw=123456&action=login HTTP/1.1
Accept: image/gif, image/jpeg, */*
Referer: http://127.0.0.1:8000/login.html
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: 127.0.0.1:8000
Connection: Keep-Alive
Address Bar
http://127.0.0.1:8000/bin/login?user=Peter+Lee&pw=123456&action=login
HTML Form Fields
<html>
<head><title>Login</title></head>
<body>
<h2>LOGIN</h2>
<form method="post" action="/bin/login">
Username: <input type="text" name="user" size="25" /><br />
Password: <input type="password" name="pw" size="10" /><br /><br />
<input type="hidden" name="action" value="login" />
<input type="submit" value="SEND" />
</form>
</body>
</html>
HTML Form Fields
Request Data
GET /bin/login HTTP/1.1
Accept: image/gif, image/jpeg, */*
Referer: http://127.0.0.1:8000/login.html
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: 127.0.0.1:8000
Connection: Keep-Alive
user=Peter+Lee&pw=123456&action=login
Address Bar
http://127.0.0.1:8000/bin/login
HTML Form Fields
File Upload using multipart/form-data POST Request
<html>
<head><title>File Upload</title></head>
<body>
<h2>Upload File</h2>
<form method="post" enctype="multipart/form-data" action="servlet/UploadServlet">
Who are you: <input type="text" name="username" /><br />
Choose the file to upload:
<input type="file" name="fileID" /><br />
<input type="submit" value="SEND" />
</form>
</body>
</html>
HTML Form Fields
POST /bin/upload HTTP/1.1
Host: test101
Accept: image/gif, image/jpeg, */*
Accept-Language: en-us
Content-Type: multipart/form-data; boundary=---------------------------7d41b838504d8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Content-Length: 342
Connection: Keep-Alive
Cache-Control: no-cache
HTML Form Fields
-----------------------------7d41b838504d8 Content-Disposition: form-data; name="username"
Peter Lee
-----------------------------7d41b838504d8 Content-Disposition: form-data; name="fileID"; filename="C:temp.html" Content-
Type: text/plain
File Content...................................................
-----------------------------7d41b838504d8--
Thank you

More Related Content

What's hot

RESTful services
RESTful servicesRESTful services
RESTful servicesgouthamrv
 
Http and its Applications
Http and its ApplicationsHttp and its Applications
Http and its ApplicationsNayan Dagliya
 
Web Servers: Architecture and Security
Web Servers: Architecture and SecurityWeb Servers: Architecture and Security
Web Servers: Architecture and Securitygeorge.james
 
Hypertext transfer protocol (http)
Hypertext transfer protocol (http)Hypertext transfer protocol (http)
Hypertext transfer protocol (http)Shimona Agarwal
 
SignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersSignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersShivanand Arur
 
Web ,app and db server presentation
Web ,app and db server presentationWeb ,app and db server presentation
Web ,app and db server presentationParth Godhani
 
HTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status CodeHTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status CodeAbhishek L.R
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - APIChetan Gadodia
 
SOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolSOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolMasud Rahman
 
Hypertext Transfer Protocol
Hypertext Transfer ProtocolHypertext Transfer Protocol
Hypertext Transfer Protocolselvakumar_b1985
 
Socket programming in Java (PPTX)
Socket programming in Java (PPTX)Socket programming in Java (PPTX)
Socket programming in Java (PPTX)UC San Diego
 
Chapter 07 php forms handling
Chapter 07   php forms handlingChapter 07   php forms handling
Chapter 07 php forms handlingDhani Ahmad
 

What's hot (20)

RESTful services
RESTful servicesRESTful services
RESTful services
 
Http caching basics
Http caching basicsHttp caching basics
Http caching basics
 
Http and its Applications
Http and its ApplicationsHttp and its Applications
Http and its Applications
 
Web Servers: Architecture and Security
Web Servers: Architecture and SecurityWeb Servers: Architecture and Security
Web Servers: Architecture and Security
 
Hypertext transfer protocol (http)
Hypertext transfer protocol (http)Hypertext transfer protocol (http)
Hypertext transfer protocol (http)
 
SignalR for ASP.NET Developers
SignalR for ASP.NET DevelopersSignalR for ASP.NET Developers
SignalR for ASP.NET Developers
 
Web ,app and db server presentation
Web ,app and db server presentationWeb ,app and db server presentation
Web ,app and db server presentation
 
HTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status CodeHTTP Request Header and HTTP Status Code
HTTP Request Header and HTTP Status Code
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - API
 
Rest API
Rest APIRest API
Rest API
 
Web technologies: HTTP
Web technologies: HTTPWeb technologies: HTTP
Web technologies: HTTP
 
SOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolSOAP--Simple Object Access Protocol
SOAP--Simple Object Access Protocol
 
Web services SOAP
Web services SOAPWeb services SOAP
Web services SOAP
 
Http protocol
Http protocolHttp protocol
Http protocol
 
Http
HttpHttp
Http
 
HTTP
HTTPHTTP
HTTP
 
Hypertext Transfer Protocol
Hypertext Transfer ProtocolHypertext Transfer Protocol
Hypertext Transfer Protocol
 
Socket programming in Java (PPTX)
Socket programming in Java (PPTX)Socket programming in Java (PPTX)
Socket programming in Java (PPTX)
 
Chapter 07 php forms handling
Chapter 07   php forms handlingChapter 07   php forms handling
Chapter 07 php forms handling
 

Similar to Http request&response by Vignesh 15 MAR 2014

Http request&response session 1 - by Vignesh.N
Http request&response session 1 - by Vignesh.NHttp request&response session 1 - by Vignesh.N
Http request&response session 1 - by Vignesh.NNavaneethan Naveen
 
Hypertex transfer protocol
Hypertex transfer protocolHypertex transfer protocol
Hypertex transfer protocolwanangwa234
 
Httpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-convertedHttpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-convertedcomputerorganization
 
Under the Covers with the Web
Under the Covers with the WebUnder the Covers with the Web
Under the Covers with the WebTrevor Lohrbeer
 
Hypertext Transfer Protocol
Hypertext Transfer ProtocolHypertext Transfer Protocol
Hypertext Transfer ProtocolRajan Pandey
 
HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developersMario Cardinal
 
Web II - 02 - How ASP.NET Works
Web II - 02 - How ASP.NET WorksWeb II - 02 - How ASP.NET Works
Web II - 02 - How ASP.NET WorksRandy Connolly
 
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.pptHTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.pptVietAnhNguyen337355
 
Web-01-HTTP.pptx
Web-01-HTTP.pptxWeb-01-HTTP.pptx
Web-01-HTTP.pptxAliZaib71
 
Chapter 1.Web Techniques_Notes.pptx
Chapter 1.Web Techniques_Notes.pptxChapter 1.Web Techniques_Notes.pptx
Chapter 1.Web Techniques_Notes.pptxShitalGhotekar
 
Juglouvain http revisited
Juglouvain http revisitedJuglouvain http revisited
Juglouvain http revisitedmarctritschler
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009Cathie101
 

Similar to Http request&response by Vignesh 15 MAR 2014 (20)

Http request&response
Http request&responseHttp request&response
Http request&response
 
Http request&response session 1 - by Vignesh.N
Http request&response session 1 - by Vignesh.NHttp request&response session 1 - by Vignesh.N
Http request&response session 1 - by Vignesh.N
 
Hypertex transfer protocol
Hypertex transfer protocolHypertex transfer protocol
Hypertex transfer protocol
 
HTTP
HTTPHTTP
HTTP
 
Httpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-convertedHttpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-converted
 
Under the Covers with the Web
Under the Covers with the WebUnder the Covers with the Web
Under the Covers with the Web
 
Network basics
Network basicsNetwork basics
Network basics
 
Hypertext Transfer Protocol
Hypertext Transfer ProtocolHypertext Transfer Protocol
Hypertext Transfer Protocol
 
Http
HttpHttp
Http
 
HTTP fundamentals for developers
HTTP fundamentals for developersHTTP fundamentals for developers
HTTP fundamentals for developers
 
Appl layer
Appl layerAppl layer
Appl layer
 
Web II - 02 - How ASP.NET Works
Web II - 02 - How ASP.NET WorksWeb II - 02 - How ASP.NET Works
Web II - 02 - How ASP.NET Works
 
Http methods
Http methodsHttp methods
Http methods
 
Application layer
Application layerApplication layer
Application layer
 
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.pptHTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
HTTPProtocol HTTPProtocol.pptHTTPProtocol.ppt
 
Web-01-HTTP.pptx
Web-01-HTTP.pptxWeb-01-HTTP.pptx
Web-01-HTTP.pptx
 
6 app-tcp
6 app-tcp6 app-tcp
6 app-tcp
 
Chapter 1.Web Techniques_Notes.pptx
Chapter 1.Web Techniques_Notes.pptxChapter 1.Web Techniques_Notes.pptx
Chapter 1.Web Techniques_Notes.pptx
 
Juglouvain http revisited
Juglouvain http revisitedJuglouvain http revisited
Juglouvain http revisited
 
Web Services 2009
Web Services 2009Web Services 2009
Web Services 2009
 

More from Navaneethan Naveen (20)

Class inheritance 13 session - SHAN
Class inheritance 13 session - SHANClass inheritance 13 session - SHAN
Class inheritance 13 session - SHAN
 
Python session 12
Python session 12Python session 12
Python session 12
 
Python session 11
Python session 11Python session 11
Python session 11
 
V irtualisation.1
V irtualisation.1V irtualisation.1
V irtualisation.1
 
Python session.11 By Shanmugam
Python session.11 By ShanmugamPython session.11 By Shanmugam
Python session.11 By Shanmugam
 
Virtualisation-11
Virtualisation-11Virtualisation-11
Virtualisation-11
 
Networking session-4-final by aravind.R
Networking session-4-final by aravind.RNetworking session-4-final by aravind.R
Networking session-4-final by aravind.R
 
Networking session3
Networking session3Networking session3
Networking session3
 
WIN-ADCS-10
WIN-ADCS-10WIN-ADCS-10
WIN-ADCS-10
 
Python session 10
Python session 10Python session 10
Python session 10
 
Python multithreading session 9 - shanmugam
Python multithreading session 9 - shanmugamPython multithreading session 9 - shanmugam
Python multithreading session 9 - shanmugam
 
Python session 8
Python session 8Python session 8
Python session 8
 
Win 8th
Win 8thWin 8th
Win 8th
 
Virtualization session 8
Virtualization session 8Virtualization session 8
Virtualization session 8
 
Virtualization session 7 by Gugan
Virtualization session 7 by GuganVirtualization session 7 by Gugan
Virtualization session 7 by Gugan
 
Python session 7 by Shan
Python session 7 by ShanPython session 7 by Shan
Python session 7 by Shan
 
Virtualization s4.1
Virtualization s4.1Virtualization s4.1
Virtualization s4.1
 
Python session 6
Python session 6Python session 6
Python session 6
 
Gpo windows(4)
Gpo windows(4)Gpo windows(4)
Gpo windows(4)
 
Windows session 5 : Basics of active directory
Windows session 5 : Basics of active directoryWindows session 5 : Basics of active directory
Windows session 5 : Basics of active directory
 

Recently uploaded

Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationAadityaSharma884161
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxsqpmdrvczh
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 

Recently uploaded (20)

Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint Presentation
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 

Http request&response by Vignesh 15 MAR 2014

  • 1. Http Request & Response
  • 2. HyperText Transfer Protocol (HTTP)  most popular application protocol used in the Internet (or The WEB)  An HTTP client sends a request message to an HTTP server  The server, in turn, returns a response message. In other words, HTTP is a pull protocol, the client pulls information from the server (instead of server pushes information down to the client).  HTTP is a stateless protocol. In other words, the current request does not know what has been done in the previous requests.
  • 4. Uniform Resource Locator (URL) A URL (Uniform Resource Locator) is used to uniquely identify a resource over the web. URL has the following syntax: protocol://hostname:port/path-and-file-name There are 4 parts in a URL: Protocol: The application-level protocol used by the client and server, e.g., HTTP, FTP, and telnet. Hostname: The DNS domain name (e.g., www.test101.com) or IP address (e.g., 192.128.1.2) of the server. Port: The TCP port number that the server is listening for incoming requests from the clients. Path-and-file-name: The name and location of the requested resource, under the server document base directory. For example, in the URL http://www.test101.com/docs/index.html, the communication protocol is HTTP; the hostname is www.test101.com. The port number was not specified in the URL, and takes on the default number, which is TCP port 80 for HTTP. The path and file name for the resource to be located is "/docs/index.html". Other examples of URL are: ftp://www.ftp.org/docs/test.txt mailto:user@test101.com
  • 5. Important Default Port numbers 443 TCP Hypertext Transfer Protocol over TLS/SSL (HTTPS). 115 TCP Simple/secure File Transfer Protocol (SFTP). 80 TCP Hypertext Transfer Protocol (HTTP). 21 TCP FTP control (command). 22 TCP Secure Shell (SSH) — used for secure logins. 23 TCP Telnet protocol. 25 TCP Simple Mail Transfer Protocol (SMTP). 115 TCP Simple File Transfer Protocol (SFTP). 110 TCP Post Office Protocol v3 (POP3). 1414 TCP IBM WebSphere MQ (formerly known as MQSeries). 9060 TCP WebSphere Application Server Administration Console. 9080 TCP WebSphere Application Server HTTP Transport (port 1) default. 8080 TCP Apache Tomcat. 5432 TCP PostgreSQL database system. 3306 TCP MySQL database system. 1521 TCP Oracle database default listener. 7001 TCP Default for BEA WebLogic Server's HTTP server.
  • 7. Http Request Message Format The format of an HTTP request message is as follow:
  • 8. Http Request Message Request Line The first line of the header is called the request line, followed by optional request headers. The request line has the following syntax: request-method-name request-URI HTTP-version request-method-name: HTTP protocol defines a set of request methods, e.g., GET, POST, HEAD, and OPTIONS. The client can use one of these methods to send a request to the server. * case sensitive and must be in uppercase. request-URI: specifies the resource requested. HTTP-version: Two versions are currently in use: HTTP/1.0 and HTTP/1.1. Examples of request line are: GET /test.html HTTP/1.1 HEAD /query.html HTTP/1.0 POST /index.html HTTP/1.1
  • 9. Http Request Message Request Headers The request headers are in the form of name:value pairs. Multiple values, separated by commas, can be specified. request-header-name: request-header-value1, request- header-value2, ... Examples of request headers are: Host: www.xyz.com Connection: Keep-Alive Accept: image/gif, image/jpeg, */* Accept-Language: us-en, fr, cn username=vignesh&password=qwer1234&......
  • 10. Http Request Message Format GET /docs/index.html HTTP/1.1 Host: www.test101.com Accept: image/gif, image/jpeg, */* Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate Referer:http://localhost:8080/home Cookie:JSESSIONID=DFC52DC1584F89D94009014A77C111EC;city=Coimbatore; User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.102 Chrome/32.0.1700.102 Safari/537.36 Cache-Control: max-age=0 (blank line)
  • 11. Http Response HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Expires: Sun, 01 Mar 2015 13:46:19 GMT Cache-Control: max-age=31556926, must-revalidate Date: Sat, 01 Mar 2014 07:57:33 GMT Set-Cookie:JSESSIONID=1D9B00464C03A0923E0AE77ADE16416A; Path=/; HttpOnly Content-Type:text/html;charset=UTF-8 <html><body><h1>It works!</h1></body></html>
  • 13. Http Response Message Status Line The first line is called the status line, followed by optional response header(s). The status line has the following syntax: HTTP-version status-code reason-phrase HTTP-version: The HTTP version used in this session. Either HTTP/1.0 and HTTP/1.1. status-code: a 3-digit number generated by the server to reflect the outcome of the request. reason-phrase: gives a short explanation to the status code. Common status code and reason phrase are "200 OK", "404 Not Found", "403 Forbidden", "500 Internal Server Error". Examples of status line are: HTTP/1.1 200 OK HTTP/1.0 404 Not Found HTTP/1.1 403 Forbidden
  • 14. Http Response Message Response Headers The response headers are in the form name:value pairs: response-header-name: response-header-value1, response-header-value2, ... Examples of response headers are: Content-Type: text/html Content-Length: 35 Connection: Keep-Alive Keep-Alive: timeout=15, max=100 The response message body contains the resource data requested.
  • 16. Http Response Status Code Some commonly encountered status codes are: 100 Continue: The server received the request and in the process of giving the response. 200 OK: The request is fulfilled. 301 Move Permanently: The resource requested for has been permanently moved to a new location. The URL of the new location is given in the response header called Location. The client should issue a new request to the new location. Application should update all references to this new location. 400 Bad Request: Server could not interpret or understand the request, probably syntax error in the request message. GET /index.html HTTTTTP/1.0 GET test.html HTTP/1.0 401 Authentication Required: The requested resource is protected, and require client’s credential (username/password). The client should re-submit the request with his credential (username/password). 403 Forbidden: Server refuses to supply the resource, regardless of identity of client. 404 Not Found: The requested resource cannot be found in the server. GET /t.html HTTP/1.0
  • 17. Http Response Status Code 405 Method Not Allowed: The request method used, e.g., POST, PUT, DELETE, is a valid method. However, the server does not allow that method for the resource requested. 408 Request Timeout: 500 Internal Server Error: Server is confused, often caused by an error in the server-side program responding to the request. 501 Method Not Implemented: The request method used is invalid (could be caused by a typing error, e.g., "GET" misspell as "Get"). get /test.html HTTP/1.0 502 Bad Gateway: Proxy or Gateway indicates that it receives a bad response from the upstream server. 503 Service Unavailable: Server cannot response due to overloading or maintenance. The client can try again later. 504 Gateway Timeout: Proxy or Gateway indicates that it receives a timeout from an upstream server.
  • 18. Http Request Using HTML Form <html> <head><title>Login</title></head> <body> <h2>LOGIN</h2> <form method="get/post/delete" action="/user/login"> Username: <input type="text" name="user" size="25" /><br /> Password: <input type="password" name="pw" size="10" /><br /><br /> <input type="hidden" name="action" value="login" /> <input type="submit" value="SEND" /> </form> </body> </html>
  • 19. HTML Form Fields A form contains fields. The types of field include: Text Box: produced by <input type="text">. Password Box: produced by <input type="password">. Radio Button: produced by <input type="radio">. Checkbox: produced by <input type="checkbox">. Selection: produced by <select> and <option>. Text Area: produced by <textarea>. Submit Button: produced by <input type="submit">. Reset Button: produced by <input type="reset">. Hidden Field: produced by <input type="hidden">. Button: produced by <input type="button"> and <button> Query String name1=value1&name2=value2&name3=value3&...
  • 20. HTML Form Fields The query string can be sent to the server using either HTTP GET or POST request method, which is specified in the <form>'s attribute "method". <form method="get" action="url"> If GET request method is used, the URL-encoded query string will be appended behind the request-URI after a "?" character, i.e., GET request-URI?query-string HTTP-version (other optional request headers) (blank line) (optional request body)
  • 21. HTML Form Fields Using GET request to send the query string has the following drawbacks: The amount of data you could append behind request-URI is limited. If this amount exceed a server-specific threshold, the server would return an error "414 Request URI too Large". The URL-encoded query string would appear on the address box of the browser.
  • 22. HTML Form Fields <html> <head><title>Login</title></head> <body> <h2>LOGIN</h2> <form method="get" action="/bin/login"> Username: <input type="text" name="user" size="25" /><br /> Password: <input type="password" name="pw" size="10" /><br /><br /> <input type="hidden" name="action" value="login" /> <input type="submit" value="SEND" /> </form> </body> </html>
  • 23. HTML Form Fields Request Data GET /bin/login?user=Peter+Lee&pw=123456&action=login HTTP/1.1 Accept: image/gif, image/jpeg, */* Referer: http://127.0.0.1:8000/login.html Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Host: 127.0.0.1:8000 Connection: Keep-Alive Address Bar http://127.0.0.1:8000/bin/login?user=Peter+Lee&pw=123456&action=login
  • 24. HTML Form Fields <html> <head><title>Login</title></head> <body> <h2>LOGIN</h2> <form method="post" action="/bin/login"> Username: <input type="text" name="user" size="25" /><br /> Password: <input type="password" name="pw" size="10" /><br /><br /> <input type="hidden" name="action" value="login" /> <input type="submit" value="SEND" /> </form> </body> </html>
  • 25. HTML Form Fields Request Data GET /bin/login HTTP/1.1 Accept: image/gif, image/jpeg, */* Referer: http://127.0.0.1:8000/login.html Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Host: 127.0.0.1:8000 Connection: Keep-Alive user=Peter+Lee&pw=123456&action=login Address Bar http://127.0.0.1:8000/bin/login
  • 26. HTML Form Fields File Upload using multipart/form-data POST Request <html> <head><title>File Upload</title></head> <body> <h2>Upload File</h2> <form method="post" enctype="multipart/form-data" action="servlet/UploadServlet"> Who are you: <input type="text" name="username" /><br /> Choose the file to upload: <input type="file" name="fileID" /><br /> <input type="submit" value="SEND" /> </form> </body> </html>
  • 27. HTML Form Fields POST /bin/upload HTTP/1.1 Host: test101 Accept: image/gif, image/jpeg, */* Accept-Language: en-us Content-Type: multipart/form-data; boundary=---------------------------7d41b838504d8 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Content-Length: 342 Connection: Keep-Alive Cache-Control: no-cache
  • 28. HTML Form Fields -----------------------------7d41b838504d8 Content-Disposition: form-data; name="username" Peter Lee -----------------------------7d41b838504d8 Content-Disposition: form-data; name="fileID"; filename="C:temp.html" Content- Type: text/plain File Content................................................... -----------------------------7d41b838504d8--